home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Games / Xconq 7.0d16 / doc / play.texi < prev    next >
Encoding:
Text File  |  1993-12-20  |  45.3 KB  |  1,202 lines  |  [TEXT/MPS ]

  1. @node Playing Xconq, Game Design, Acknowledgments, Top
  2.  
  3. @chapter Playing Xconq
  4.  
  5. This chapter is about how to play @i{Xconq}.
  6. Although @i{Xconq} supports a wide variety of games,
  7. and runs on many different computer systems,
  8. they all have much in common,
  9. and it is these common features that will be described here.
  10. This chapter, along with the document for your system
  11. and the document for the game you're playing,
  12. should provide all the information you need to play
  13. and enjoy @i{Xconq}.
  14.  
  15. The term @dfn{interface} refers to the particular graphical user
  16. interface in use.  Examples include X11 basic, X11 toolkit, curses,
  17. Macintosh(tm), and ``dumb terminal'' (used for testing).
  18. Interfaces can vary radically from each other, since each is designed
  19. to be best suited for its environment.
  20. However, all have some way to display the world, all have a way to
  21. examine individual units, and all provide some way for
  22. you to make your units do actions.
  23. In practice, interfaces will also tend to share the same commands,
  24. so that you don't learn to learn a whole new set of commands when
  25. switching computers.
  26.  
  27. When reading this chapter, you should be aware that the term
  28. @dfn{game} is more precisely @dfn{game design}, since it is
  29. the set of rules and definitions of the game you want
  30. to play.  Since @i{Xconq} allows for many different kinds of
  31. games designs, much of the information in this chapter will
  32. be irrelevant to a particular game.  This will be indicated
  33. by phrases like ``some games'' or by saying that a game ``may''
  34. implement some concept or behavior.  You should learn what
  35. the game you're playing actually does in these cases.
  36. The names of the variables or tables to look at will often
  37. be mentioned in @code{computer type} like this.
  38.  
  39. @node Setting Up, Starting Play, Xconq Games, Playing Xconq
  40.  
  41. @section Setting Up A Game
  42.  
  43. To get started with an @i{Xconq} game,
  44. you have to select the one that you want to play.
  45. The possibilities may be
  46. presented to you, or you may have to look in some sort of library
  47. to see what's available and then supply that name on a command line.
  48. If you don't do anything, then you will get some sort of default game.
  49.  
  50. Some games require no additional setup;
  51. once loaded, you're ready to go.
  52. Others will require additional decisions,
  53. such as the size and shape of the playing area,
  54. whether exploration will be necessary, or
  55. whether the game is realtime.
  56. These will all be called @dfn{variants}.
  57. The exact set of variants is determined by the game design,
  58. and the interface will (usually) tell you about them.
  59.  
  60. In addition, most games also give you a choice of
  61. which player is to play which side in a game,
  62. as well how many players can join in.
  63. There are two kinds of players: humans, who have displays,
  64. and artificial intelligences or AIs for short, which are
  65. run by the computer.  Your version of @i{Xconq} may support
  66. more than one kind of AI; each type has a distinct name.
  67.  
  68. An example might be a simulation of pre-WWI Europe,
  69. named @code{"la-belle-epoque"}, in which the
  70. sides might be ``England'', ``France'', ``Germany'',
  71. and ``Austria-Hungary'', and
  72. the players might be Joe on a Sun-4, Natalie on a Mac, and
  73. two of the @code{mplayer} type AIs.  You can set
  74. Natalie to play England, Joe to play Germany, and the two AIs
  75. to play France and Austria-Hungary.
  76.  
  77. Some game designs provide a way to even things up if the players
  78. are of vastly differing abilities.
  79. In these designs, each player has an @dfn{initial advantage} that affects
  80. how much he or she gets to start with.
  81. Weaker players should get a
  82. higher advantage, so for instance a game of two players of advantages
  83. 1 and 4 might give the advantage 4 player 8 cities while the advantage 1
  84. player gets only 2.
  85. This affects setup only; during the game all players are equal.
  86. The variability of advantage also depends on the game; some may
  87. allows differences of 10 to 1 or more, while others, especially
  88. historically accurate scenarios, will have a fixed advantage that
  89. the designer has set for each side.
  90.  
  91. Once a trial player setup has been made,
  92. @i{Xconq} runs ``synthesis methods''.
  93. These methods are specified by the game design,
  94. and randomly generate anything that was not explicitly spelled out;
  95. for instance, the initial location of countries, terrain features,
  96. and so forth.
  97. As a player, you don't have to concern yourself about synthesis
  98. methods, but you should be aware that
  99. you may sometimes run into situations were a synthesis method simply cannot
  100. cope, and your game setup will fail.  A common case is where you
  101. ask for many players to be set up in a small world, and the
  102. set of constraints is too ``tight'' for an initial setup to
  103. succeed.  In such cases, you just have to try different setups
  104. and maybe complain to the game designer (or to the @i{Xconq} author!).
  105. Synthesis methods may also take a long time to run; for large worlds
  106. and lots of players, be prepared to wait.
  107.  
  108. When initialization and setup succeeds, @i{Xconq} will try to open up
  109. displays for every player that wanted one.
  110. Exactly how this happens depends on the interface and networking
  111. capabilities of the version of @i{Xconq} you're using.
  112. Once this is done, @i{Xconq} will start the game for real.
  113.  
  114. [any other setup warnings to document?]
  115.  
  116. @subsection Mixing Game Modules
  117.  
  118. Some interfaces (such as those using Unix-style command lines) may let you
  119. ask for more than one game design when starting up.
  120. This is sometimes useful, for instance, if you want to play on
  121. the @code{steppes} world with a non-standard set of units;
  122. your command line might look like @code{-g my-hacks -g steppes}.
  123. Be aware, however, that this cannot be guaranteed to work always,
  124. since the mixed-together game designs may have
  125. mutually conflicting definitions, or interfere with
  126. each other in subtle or not-so-subtle ways.  Just imagine the disaster
  127. if the world consists entirely of terrain that is instant death to your
  128. initial units!  Worse, @i{Xconq} may start up and run OK for awhile,
  129. then crash and burn for no apparent reason.
  130.  
  131. So be careful about mixing designs!
  132.  
  133. @node Starting Play, Worlds, Setting Up, Playing Xconq
  134.  
  135. @section Starting Play
  136.  
  137. Exactly what you'll first see depends entirely on the interface you're using.
  138. Help is available in the ``usual'' ways,
  139. and the interface is robust, so you can always just try
  140. to find your way around by experimentation.
  141. (This is best done by yourself, rather than in a game with a lot
  142. of other people.)
  143.  
  144. The game proceeds as a sequence of @dfn{turns}.
  145. During each turn, you and the other players get to move
  146. your @dfn{units}, which can be anything from cities to submarines
  147. to insects, depending on the game.
  148. In addition, there may be @dfn{backdrop activities},
  149. such as changing seasons and weather, that go on all by themselves.
  150. These typically happen at the beginning or end of a turn,
  151. not while players are moving their units.
  152.  
  153. Your exact goal in the game depends on the @dfn{scorekeepers}.
  154. Most games have at least one, some have several, and some have none.
  155. There are many kinds of scorekeepers, so be sure you know and
  156. understand what they are before getting too far into a game!
  157. There may not be any scorekeepers at all, in which case you can
  158. do whatever you like; any AIs playing in such a game will also
  159. do what they like.
  160.  
  161. A game may last anywhere from a few turns to many hundreds.
  162. Again, this may be limited by the game design,
  163. or perhaps by the nature of the game.  For instance, a game
  164. of oil empires might be forced to end when the world's oil
  165. supplies are exhausted...
  166.  
  167. @node Worlds, Units, Starting Play, Playing Xconq
  168.  
  169. @section Worlds and Areas
  170.  
  171. @quotation
  172. Gallia est omnis divisa in partes tres [All Gaul is divided into three
  173. parts] -- JULIUS CAESAR
  174. @end quotation
  175.  
  176. The @i{Xconq} ``world'' is always a sphere.  However, you only play
  177. on a piece of it, which is called an @dfn{area}.
  178. Currently, there can only be one world and one area in a game.
  179.  
  180. An area is divided into hexagonal @dfn{cells}.  Although squares
  181. with four or eight neighbors could be used (and were, in the very first
  182. version of @i{Xconq}), hexes have better all-around geometric properties.
  183. Each cell is adjacent to six others,
  184. in the directions NW, NE, W, E, SW, and SE.
  185. Areas have a @dfn{width} and @dfn{height} that are the number
  186. of cells across and up/down.
  187. Although you can ask for areas down to 10x10 or less,
  188. or up to 1000x1000 or even more, the ideal default is typically
  189. around 60x30.  Larger areas consume vast quantities of memory,
  190. plus they're slow and unwieldy to play on.
  191.  
  192. An area may be large enough to go all around the world, forming
  193. a cylinder shape.
  194. The cylinder can be circumnavigated in an east-west direction.
  195. This is an 8x6 cylinder:
  196. @example
  197. # # # # # # # #
  198.  : : + + : : : :
  199. : : : + ^ : : :
  200.  : : : : : : : :
  201. : : : : ^ : : :
  202.  # # # # # # # #
  203. @end example
  204.  
  205. Areas whose width is less than the world's circumference
  206. have a hexagonal shape.
  207. This is an 8x7 hexagon:
  208. @example
  209.    # # # # # 
  210.   # : + + : #
  211.  # : : + ^ : #
  212. # : : + ^ : : #
  213.  # : : : : : #
  214.   # : : ^ : #
  215.    # # # # # 
  216. @end example
  217.  
  218. The top and bottom rows of the cylinder shape,
  219. and all the sides of the hexagon shape, although
  220. they are displayed, may not be entered (except when leaving the world
  221. entirely, see below).  These cells are called @dfn{edge} cells.
  222.  
  223. The types of terrain you'll find in the world depends on the game design;
  224. typically there will be sea, land, mountains, swamp, and so forth,
  225. but more exotic games have been known to
  226. feature junkheaps, lava, and black holes as ``terrain''.
  227.  
  228. Terrain can appear either to cover an entire cell or as linear features
  229. passing through or between cells.
  230. @dfn{Cell terrain} covers the entire cell uniformly,
  231. right out to its edges.
  232. A @dfn{border} is the boundary between two adjacent cells;
  233. it has a distinct terrain type, such as ``river'' or ``beach''.
  234. A @dfn{connection} is a narrow ribbon of terrain that reaches
  235. from the middle of one cell to the middle of an adjacent cell.
  236. Like borders, connections are distinct types, for instance ``road'',
  237. ``railway'', or ``canal''.
  238. Connections take precedence over borders and underlying cell terrain;
  239. in other words, if cell or border terrain is impassable, but there is
  240. a passable connection type, then the connection allows passage.
  241. Thus a connection can be usable as a bridge.
  242.  
  243. You may also find more than one type of connection or border,
  244. between two cells, such as both a road and a rail line.
  245. This occurs only in the more complex games.
  246.  
  247. A @dfn{coating} is like snow; it is a type that co-exists with
  248. cell terrain.  Coatings can change from turn to turn, varying
  249. in depth.
  250.  
  251. Note that any single terrain type can only play one of these roles.
  252. This means you will never have river terrain that is both border
  253. and connection, nor will snow be both a coating and a cell type.
  254.  
  255. In some games, each cell has an @dfn{elevation}, which is basically
  256. elevation above sea level, but could be any range of values, as set
  257. by the game design.
  258. The game design also defines the effect of elevation on movement,
  259. visibility, and weather.
  260.  
  261. A world can have named geographical features, such as a bay, mountain,
  262. desert, or valley.
  263. Geographical features never have any direct effect on your game,
  264. but some interfaces may use them to help describe locations,
  265. in phrases like @code{"1 hex NW of Broken Hill"}.
  266.  
  267. A world can have people living in some or all of its cells.
  268. People belonging to a side report everything
  269. they see in their cell to their side.
  270. Some types of units will change the people's side to the
  271. unit's, if that unit is of the proper type.
  272.  
  273. @node Units, Materials, Worlds, Playing Xconq
  274.  
  275. @section Units
  276.  
  277. @dfn{Units} can be almost anything:
  278. adventurers, armies, balloons, bicycles, dragons, triremes, spiders,
  279. battleships, bridges, headquarters, cities.
  280. Units move around, manufacture things, 
  281. fight with other units, and possibly die.
  282. They are the playing pieces of @i{Xconq}.
  283.  
  284. Units have a location, either in out in the open or inside
  285. some other unit.
  286. In games that define connections (like roads), a unit may be
  287. on the connection rather
  288. than on the predominant terrain of the cell.
  289. (Think of a truck on a bridge.)
  290. Some games may also have airborne and subsurface units.
  291. There may be more than one unit in the open in a given cell,
  292. up to a game-defined limit.
  293. A unit inside another unit will be called
  294. an @dfn{occupant} in a @dfn{transport},
  295. even if the ``transport'' is a type that can never move.
  296.  
  297. A unit either belongs to a side, or else it is considered @dfn{independent}.
  298. Independent units do not do very much.
  299. In the more complex names, the unit's side merely represents the
  300. current ownership, and the unit may have a range of feelings
  301. towards each side, including its current one.
  302. In those games, it is possible for a unit to be a traitor!
  303.  
  304. Units can have a name, full name, a title, and a number,
  305. as appropriate to the situation.
  306. The name is an ordinary name like ``Joe Schmoe'' or ``Cincinnati'',
  307. while the full name might be something like ``Joseph P. Schmoe''.
  308. The title is a form of address such as ``Lord''. 
  309. The unit number, if used, is an ordinal that is maintained
  310. for each side and each unit type,
  311. so you can have both a ``1st national bank'' and
  312. a ``45th infantry division'' on your side.
  313. Names and numbers are always optional, and can usually be changed at any time
  314. during the game.
  315.  
  316. Every unit starts out with a
  317. number of @dfn{hit points} or @dfn{hp} representing
  318. how much damage it can sustain before dying.
  319. Certain types of units, such as armies and fleet of ships,
  320. have multiple @dfn{parts}, which means that damage to them
  321. reduces their effective size.
  322. Multi-part units can merge with and detach from each other.
  323. Damaged unit may recover their hp on their own, or else
  324. repairable by explicit action.
  325.  
  326. In addition to occupants, a unit can also carry materials
  327. (food, fuel, treasure, etc).
  328. These materials are known as the unit's @dfn{supplies}.
  329. Supplies are used up by movement, combat, and by just existing, and are
  330. gotten either by producing them or by transferring them from some other unit.
  331. Some games start units out with lots of supplies, while in others
  332. you have to acquire them on your own.
  333.  
  334. What a unit can do at any one time depends on the @dfn{action points} or
  335. @dfn{acp} available to it.  Each sort of action - movement, construction,
  336. repair, etc - uses up at least one action point, and possibly more.
  337. A unit with an acp of 0 can never do anything on its own,
  338. although other units can still manipulate it.
  339. Also, not every type of unit can do every type of action;
  340. this is also defined by the game design.
  341. Section xxx lists all the types of actions that are
  342. possible in @i{Xconq}.
  343.  
  344. You can lose a unit in many different ways:
  345. in combat, by running out of essential supplies,
  346. by being captured, by revolt, by garrisoning a captured unit,
  347. by leaving the world, or in accidents.
  348.  
  349. @node Materials, Sides, Units, Playing Xconq
  350.  
  351. @section Materials
  352.  
  353. In @i{Xconq}, @dfn{materials} are basically bulk inanimate stuffs,
  354. like food or fuel.
  355. They are kept in units or in cells,
  356. up to a maximum defined by the game.
  357. Materials may be provided as part of the initial game setup,
  358. or else produced by units and cells.
  359. They are consumed by construction,
  360. movement, or merely in order to surive.
  361. You can also move materials around from unit to unit,
  362. or (in some games) let the laws of supply and demand
  363. move them for you.
  364.  
  365. In a few games, possession of a material type may figure into your
  366. score (your gold for instance).
  367. In other games, there are no types of materials at all.
  368.  
  369. @node Sides, Moving Units, Materials, Playing Xconq
  370.  
  371. @section Sides
  372.  
  373. Each player in @i{Xconq} runs a @dfn{side}.
  374. The concept of ``side'' is somewhat abstract in @i{Xconq};
  375. units in a game belong to sides,
  376. but the sides themselves are not attached to any particular unit
  377. (with the partial exception of ``self-units''; see below for details).
  378. Side often represent countries, but not always.
  379.  
  380. It is important to be clear about sides and players.
  381. A side is a part of the simulated world, while a player
  382. is the actual real-world person or program that is playing the side.
  383. You yourself are always the player, but in one game you may play the
  384. German side, and in another the Klingon side.
  385. During a game, there will always be a player for each side,
  386. and vice versa.  The distinction is most important
  387. during setup; you can swap players between sides.
  388.  
  389. Each side can have a name and associated parts of speech,
  390. such as a noun for individuals on the side and an adjective
  391. to describe anything belonging to the side.
  392. Sides can also have emblems and colors that are used in displays.
  393. Some game designs preset all this, while others let you
  394. personalize as desired.
  395. See the @i{Xconq} document for your system to learn how to do this.
  396.  
  397. @subsection Interaction Between Sides
  398.  
  399. In games with two players, your interaction is usually pretty simple,
  400. i.e. bash each other.  In games with many players, some human, some
  401. mechanical, it is possible to have a variety of relationships, ranging
  402. from complete trust to complete hatred.
  403.  
  404. One thing you can do is to make your side be controlled by another side.
  405. This is basically surrendering, because the controlling side can
  406. manipulate any of your units as if they were its own.  The controlling
  407. side also has the option of allowing or forbidding you to move your
  408. own units.  The relationship is strictly one-sided, and only the
  409. controlling side can release the controlled side.  (Note that this
  410. is a way to do governors, where one player is the main boss and
  411. is helped by several other players acting as governors, usually
  412. with agreed-upon responsibilities.)
  413.  
  414. A less extreme, but still very close, relationship is trust.  This is
  415. like a close ally - you can enter each other's transports, you share
  416. view data, and so forth.  Trust is a two-way relationship; both you
  417. and the other side each have to declare you want to trust the other.
  418. Trust can be unilaterally withdrawn.
  419.  
  420. If you don't want to declare a special relationship with another side,
  421. but still want to make some sort of adhoc arrangement, you can create
  422. an @dfn{agreement}.  An agreement is a sort of generalized treaty;
  423. it consists of a number of @dfn{terms} agreed to by a number of
  424. @dfn{signers}, which are sides.  Agreements may be public or secret,
  425. and you can declare them to be enforced by @i{Xconq} if the terms
  426. are in a form it understands (obviously, an agreement that just says
  427. ``help each other out'' cannot be evaluated by the program).
  428.  
  429. To make an agreement, you ask the interface to create one, fill in its
  430. terms, possibly give it a name, and make up a list of proposed signers.
  431. @i{Xconq} will then ask each signer for a tentative signature, if all
  432. tentatively sign, then the agreement becomes genuinely signed and goes
  433. into effect immediately.  All sides that are to know about the agreement
  434. will be informed of its terms. [have both public and secret terms?]
  435.  
  436. Some interfaces may allow players to copy and modify a proposed and
  437. circulate it along with the original.  The proposing side may also
  438. withdraw a proposal, but cannot modify it without having it signed again
  439. by everybody involved.
  440.  
  441. Once in effect, an agreement cannot be modified, and it cannot be
  442. removed unless it includes a term that provides for this.
  443.  
  444. Each term of an agreement can have one of several forms:
  445.  
  446. A text string.  This is not interpreted in any way
  447. and could be a comment, preamble, or whatever.
  448.  
  449. A true/false expression.  This must always be true for the agreement
  450. to be valid.
  451.  
  452. A statement of an action.  This action will be performed at the instant
  453. that the agreement goes into effect.
  454.  
  455. An if-then statement.  If the condition is true
  456. while the agreement is in effect, then the action will be performed.
  457.  
  458. [need some examples]
  459.  
  460. @subsection Trade with Other Sides
  461.  
  462. You can specify the nature of the trading relationship with other sides.
  463. The basic theory is that traders are businessfolk and don't care much about
  464. politics; they will do business with anybody.
  465. However, a player can define relationships with other sides via tariffs.
  466. A tariff is a per-side per-material value that is the percentage of material
  467. that will be claimed from the amounts going both to and from units on a side.
  468. [does this mean we need both import and export tariffs?]
  469. A tariff of zero means free trade, while negative is allowed and amounts to
  470. a subsidy.
  471.  
  472. @subsection Tech Levels
  473.  
  474. In some game designs, technology and research are important.
  475. These games give each side a set of @dfn{tech levels}
  476. or just @dfn{tech}, one for each type of unit.
  477. The tech level represents the technological knowledge needed to
  478. see, operate and build a type of unit.
  479. Tech levels never decrease (they can in real life, but only over
  480. very long time intervals),
  481. and they can be increased by research and espionage.
  482.  
  483. There are several thresholds that you must reach to do things with a
  484. unit.  First there is a @code{tech-to-see}, below which you will not even
  485. be aware of the existence of a unit (consider barbarians unable to see
  486. spy satellites overhead).  Then there is a @code{tech-to-use},
  487. which you must have in order to do anything with the unit.
  488. The @code{tech-to-understand} and @code{tech-on-acquisition} are
  489. points at which your side can increase its tech level just by owning
  490. a unit, and finally the @code{tech-to-build} is what you must
  491. have to create new units of the given type.
  492.  
  493. See the appropriate sections below to find out how to do research and
  494. espionage to increase your tech level.
  495.  
  496. @subsection Side Classes
  497.  
  498. In some games, several sides may be very similar, while being very
  499. different from other sides in the same game.
  500. These similar sides can be given the same @dfn{side class}.
  501. Units may then be restricted to be usable only by the sides in
  502. a particular class.  (Note that this is different from tech level,
  503. which allows units to be used by any side that has managed to acquire
  504. a sufficiently high tech level.)
  505.  
  506. @subsection Self-Units
  507.  
  508. A @dfn{self-unit} is one that represents your whole side in some way.
  509. For instance, in a dungeon exploration game, your ``side'' might consist
  510. of an adventurer (you), your possessions, your followers, and perhaps more.
  511. In such a case, if the adventurer dies or is captured, then the game is
  512. over for that side.
  513.  
  514. [describe change of self-unit etc?]
  515.  
  516. @subsection Personalizing Your Side
  517.  
  518. [Whole section is hard to understand]
  519.  
  520. In order to tell everybody apart, it is possible to define and
  521. record your side name and a distinct emblem.  You can have different
  522. identities for different scenarios, and a default that applies to all
  523. others.
  524.  
  525. The name is a proper noun such as "Poland",
  526. the noun is what you would call an individual,
  527. such as "Pole", the plural is for more than one,
  528. and <adj> is the adjective for things on that side, such as "Polish".
  529. The color scheme is a comma-separated list of color names,
  530. and <image name> names some sort of image file (like a bitmap).
  531.  
  532. The image may be of any size and combination of colors, with the caveat
  533. that it may not always work correctly.  For instance, two subtly different
  534. shades may get fused into a single solid color.  The emblem should also be
  535. small enough to fit reasonably into unit icons.
  536. As a rule, most national flags will fit into a 7x5 rectangle,
  537. and coats of arms into a 7x9 region.
  538. The color scheme should be useful by itself,
  539. when the unit icons are too small to fit the emblem.
  540.  
  541. @i{Xconq} will not allow you to have the same name, color, or emblem as
  542. another player in the same game.
  543.  
  544. The interface-specific side configuration uses the favored mechanism
  545. for that interface (if one is defined).
  546. You should check with the interface documentation for more details.
  547.  
  548. @node Moving Units, Automation, Sides, Playing Xconq
  549.  
  550. @section Moving the Units
  551.  
  552. Once the first turn begins (and any pre-move backdrop activity has happened,
  553. see below), you can begin looking at the display and moving your units.
  554. Depending on the game design and startup options, you may or may not
  555. be moving simultaneously with the other players.
  556. If not, then the players move sequentially, in the order that their
  557. sides are listed in any display.
  558. Although all units conceptually act simultaneously,
  559. they actually act one at a time, in an order determined by
  560. various factors that will be described later.
  561.  
  562. @subsection Turn Setup
  563.  
  564. First, @i{Xconq} computes the number of action points
  565. available to each unit.
  566. Each unit gets an increment of action points equal to its
  567. @code{acp-per-turn}.  Actions during a turn reduce this down;
  568. when it reaches a value less than the cost of any action,
  569. unit cannot do anything more until the next turn.
  570.  
  571. The range of action points for a unit is
  572. normally 0 up to the value of @code{acp-per-turn},
  573. but the parameters @code{acp-min} and @code{acp-max}
  574. may allow for an extended range.
  575. You use this range by allowing a unit to accumulate extra action points
  576. by doing nothing for several turns,
  577. or to recover from an activity that used
  578. many action points all at once.
  579. Think of this as a sort of temporary action ``debt''.
  580. Units in debt at the beginning of a turn cannot act
  581. during that turn.
  582.  
  583. @subsection Types of Actions
  584.  
  585. Actions are the most basic kinds of things your units can do.
  586. During play, the interface will usually give you
  587. capabilities that are easy to use, such as the ability
  588. to drag a unit and have it try to get there somehow,
  589. but all such input
  590. eventually breaks down into sequences of actions.
  591. You will therefore find it useful to know all the types of
  592. actions available.
  593.  
  594. Movement Group:
  595.  
  596. @itemize @bullet
  597. @item
  598. @i{Move to} a given location.
  599. The unit being moved may be in a transport or out in the open,
  600. the destination is any location in the open (this will usually,
  601. but not always, be an adjacent cell), and may be at any altitude
  602. allowed for the unit.
  603.  
  604. @item
  605. @i{Enter} a given transport.  The transport need not be on the same
  606. side as the entering unit.
  607.  
  608. @end itemize
  609.  
  610. Combat Group:
  611.  
  612. @itemize @bullet
  613.  
  614. @item
  615. @i{Attack} a given unit.
  616.  
  617. @item
  618. @i{Overrun} a given location.  This basically means ``attempt to occupy
  619. the destination, chasing everybody else out''.
  620.  
  621. @item
  622. @i{Fire at} a given unit, possibly with a given material.
  623.  
  624. @item
  625. @i{Fire into} a given location, possibly with a given material.
  626.  
  627. @item
  628. @i{Capture} a given unit.
  629.  
  630. @item
  631. @i{Detonate} at a given location.
  632.  
  633. @end itemize
  634.  
  635. Construction Group:
  636.  
  637. @itemize @bullet
  638.  
  639. @item
  640. @i{Research} a given unit type.
  641.  
  642. @item
  643. @i{Tool up} to build a given unit type.
  644.  
  645. @item
  646. @i{Create} a unit of the given type.  The unit will usually be incomplete.
  647.  
  648. @item
  649. @i{Build} a given unit towards completion.
  650.  
  651. @item
  652. @i{Repair} a given unit.
  653.  
  654. @end itemize
  655.  
  656. Unit Manipulation Group:
  657.  
  658. @itemize @bullet
  659.  
  660. @item
  661. @i{Disband} a given unit.
  662.  
  663. @item
  664. @i{Move part} of a unit, either to another given unit,
  665. or creating a new unit.
  666.  
  667. @item
  668. @i{Change side} of a given unit to a given side.
  669.  
  670. @item
  671. @i{Change type} of a given unit to a given type.
  672.  
  673. @end itemize
  674.  
  675. Material Manipulation Group:
  676.  
  677. @itemize @bullet
  678.  
  679. @item
  680. @i{Produce} a given quantity of a given material type.
  681.  
  682. @item
  683. @i{Transfer} a quantity of a given material type to a given unit.
  684.  
  685. @end itemize
  686.  
  687. Terrain Manipulation Group:
  688.  
  689. @itemize @bullet
  690.  
  691. @item
  692. @i{Add terrain} of a given type to a given location.
  693.  
  694. @item
  695. @i{Remove terrain} of a given type from a given location.
  696.  
  697. @end itemize
  698.  
  699. In general, all of these actions allow the acting unit to do the action on
  700. another unit.
  701. For instance, a transport can pick up or drop off a non-moving unit.
  702.  
  703. Not all interfaces can be guaranteed to allow the most general forms
  704. of all these actions!
  705.  
  706. @subsection Movement
  707.  
  708. Movement into a cell is easy to request, but each game will
  709. have many rules constraining possible moves, depending both
  710. on the unit and the terrain it is moving over.
  711. Certain kinds of terrain cost extra points to enter, leave,
  712. or cross.  The destination must almost always be adjacent
  713. to the unit's current location.
  714.  
  715. The other kind of action is to enter/leave a transport.
  716. The only argument is the unit to enter,
  717. but again the constraints are complicated.
  718. The transport must have sufficient space,
  719. both the entering unit and the transport must have sufficient
  720. mp and acp to complete the move,
  721. and they must be able to cross intervening terrain.
  722.  
  723. In some games, you may be able to make one of your units leave the
  724. world entirely.  Sometimes this will seem like a good idea, perhaps
  725. to keep a trapped unit from falling into enemy hands, or because
  726. you win the game by leaving through a designated place.
  727. To do this, you just direct your unit (which must already be at the edge
  728. of the world) to move into one of the cells along the edge.
  729. If the departure is allowed, then the unit will simply vanish
  730. and be out of the game permanently.
  731.  
  732. In other games, you may be able to do a @dfn{border slide}.
  733. This is where a unit can jump to a non-adjacent cell if the
  734. two cells have a border whose endpoints touch the starting
  735. and ending cell.  This is typically allowed in games so that
  736. ships can go through narrow straits.
  737.  
  738. @subsection Combat
  739.  
  740. @quotation
  741. War is a matter of vital importance to the State; the province of life
  742. or death; the road to survival or ruin.  It is mandatory that it be
  743. thoroughly studied.  -- SUN TZU (ca 400 BC)
  744. @end quotation
  745.  
  746. There are two basic kinds of combat, each with two versions.
  747. A unit can attack or overrun, meaning that it comes to grips with
  748. an enemy in some way,
  749. or it can fire, meaning that it keeps its position and throws
  750. rocks or whatever at a target.
  751.  
  752. @dfn{Attack} is directed at a particular unit,
  753. while @dfn{overrun} is a more complex action where the unit
  754. attempts to clear enough units from a given location
  755. so that it can move into it.
  756.  
  757. The general idea is that a unit wishing to attack picks a position
  758. or unit to attack, @i{Xconq} computes the defender's response,
  759. then the outcome is determined.
  760.  
  761. In many games, that will be the end of a fight.
  762. In others, the units remain engaged in a @dfn{battle},
  763. and they cannot do any other type of action
  764. until they have disengaged completely.
  765.  
  766. @dfn{Firing} can happen at long ranges, up to the @code{range} of a unit.
  767. It may or may not involve using a specific material as ammunition;
  768. if the game gives you a choice, you will have to choose which,
  769. or else all possible types will be used.
  770. You can @dfn{fire at} a specific unit if you can see it,
  771. otherwise you will have to @dfn{fire into} a cell.
  772. [presumably with less effectiveness]
  773.  
  774. Some units are capable of capturing other units, with a probability depending
  775. on the types of both units involved.  If the capture attempt is successful,
  776. the capturer will move into the cell if possible, either as occupant or
  777. transport.  In some games, the capturer may be all or partially disbanded,
  778. to serve as guards.
  779. Capture may also occur as a side effect of a normal attack.
  780.  
  781. Detonation is a special kind of ``combat'' available to some units.
  782. The action requires a location - either the unit's position or a nearby cell.
  783. Upon detonation, the detonating unit may lose some hp and even die
  784. (changing to its ``wrecked type'', if defined, or else vanishing).
  785. At the same time, it makes one hit on any units within its
  786. radius of effect.  Detonation may also be triggered automatically,
  787. such as by damage to the unit or even by another unit appearing nearby.
  788.  
  789. @subsection Research
  790.  
  791. @dfn{Research} increases a side's tech for the unit type
  792. being researched.
  793. Although you can only research a specific type of unit,
  794. some game designs allow for a crossover effect, where increases in the
  795. tech level for one type also increases the level in others.
  796.  
  797. You can have more than one researcher researching the same type,
  798. and thereby speed up your progress, but some games put a ceiling
  799. (@code{tech-per-turn}) on how much progress you can make in one turn.
  800.  
  801. @subsection Toolup
  802.  
  803. @dfn{Tooling up} prepares a unit to create or construct the desired type.
  804. As with research, game designs may allow a crossover effect for tooling.
  805. Tooling may also decline gradually over time; this is called
  806. @dfn{tooling attrition}.
  807.  
  808. @subsection Construction
  809.  
  810. Construction of a unit happens in two steps; creation and 
  811. building towards completion.
  812. Most interfaces will also schedule research and toolup
  813. actions if a unit is told to build something that is still beyond its
  814. capabilities.
  815.  
  816. @dfn{Creation} is the actual step of bringing a new unit into existence.
  817. If the new unit is @i{complete}, then it can be used immediately.
  818. If not (the usual case), then the incomplete unit will exist and belong
  819. to your side, but be unable to do anything at all.
  820. Incomplete transports cannot have any occupants,
  821. unless they are types capable of completing the transport.
  822.  
  823. @dfn{Completion} is achieved by doing completion actions on the unit.
  824. Multiple units can all work on completing the same unit,
  825. but they must be sufficiently close, within a range defined by the game
  826. (usually the same or an adjacent cell).
  827.  
  828. It is @i{usually} the case that the same unit will be able to both
  829. create and complete a unit, but if not, you will have to pay special
  830. attention to your construction plan, since an incomplete unit cannot
  831. (usually) do anything to help itself along.  In some games, there
  832. is a level of completion past which the unit will start working
  833. on itself automatically, and eventually become complete without any
  834. further action.
  835.  
  836. Note that multi-part units will be considered ``complete'' when just one
  837. of their parts is completed.  Again, most interfaces will have the
  838. builder continue growing the just-completed unit as long as it sticks
  839. around.
  840.  
  841. @subsection Repair
  842.  
  843. @dfn{Repair} restores lost hit points to a unit.
  844. Repairs can be done by the damaged unit itself,
  845. if it is not too badly damaged,
  846. or by another unit that is close enough nearby.
  847.  
  848. Some games also feature automatic hit point recovery,
  849. so you don't have always to remember to do explicit repair actions.
  850.  
  851. @subsection Disbanding
  852.  
  853. @dfn{Disbanding} is voluntary loss of hp, ultimately resulting
  854. in the disappearance of the unit.
  855. Most games only allow it for a few types of units.
  856.  
  857. Units with occupants can disband,
  858. but only if the occupants are unaffected by the
  859. action.  If unit would vanish or lose transport capacity,
  860. then the occupants must be disbanded or removed first.
  861.  
  862. @subsection Moving Parts
  863.  
  864. In games where units are of variable size, you can shift one or
  865. more parts of a multi-part unit to another unit.
  866.  
  867. @subsection Changing Side
  868.  
  869. @dfn{Changing side} means moving a unit from the control of one
  870. side to another.  Not all types of units will allow this!
  871.  
  872. @subsection Changing Type
  873.  
  874. A few games allow a unit to change its type voluntarily.
  875.  
  876. @subsection Production and Transfer
  877.  
  878. @dfn{Production} is how a unit can produce a quantity of a material.
  879.  
  880. In many games, units already have a @dfn{base production} that is
  881. the amount of material that they produce automatically each turn.
  882. This will often depend on the terrain, so that explorers in the
  883. forest will always ``produce'' enough water to drink each turn,
  884. but will start to use up their water supply when in the desert.
  885.  
  886. Often there will be plenty of some type of material in the world,
  887. but the problem is getting it from the units that have a lot,
  888. to the units that need it badly.  The @dfn{transfer} action is
  889. how you move supply from one unit to another.
  890.  
  891. As with production, many games have some automatic transfers
  892. set up.  For instance, games involving aircraft generally refuel
  893. them automatically whenever the aircraft has landed in a place
  894. with fuel to spare.
  895.  
  896. @subsection Changing the Terrain
  897.  
  898. In some games, units can add or remove borders, connections,
  899. or coatings, or may be able to change the overall type of terrain
  900. in a cell.
  901.  
  902. @node Automation, Climate Backdrop, Moving Units, Playing Xconq
  903.  
  904. @section Automation of Units and Sides
  905.  
  906. Specifying the exact sequence of actions and their operands
  907. for every single unit would be mind-numbingly complex.
  908. It's not very realistic either!
  909. Therefore,
  910. @i{Xconq} includes several levels of automation for human players.
  911.  
  912. The elements of automation are the @i{task}, the @i{plan}, the
  913. @i{doctrine}, and the @i{strategy}.  These are related to each
  914. other by @i{goals}.
  915.  
  916. @dfn{Tasks} are single activities of a unit that require one or more 
  917. actions to accomplish.  Examples of tasks include moving to a 
  918. given position, or waiting 15 turns to be picked up by a transport.
  919.  
  920. A @dfn{plan} is the unit's object that expresses its decided-upon behavior.
  921. Elements of a plan include a type, goal, and task queue,
  922. as well as more specific slots, such as a pointer to the unit
  923. currently under construction.
  924. All units that can do actions have a plan.
  925.  
  926. The @dfn{doctrine} is the set of parameters governing how the side will play
  927. and how its units should work generally.  For instance, per-unit
  928. doctrine specifies the point which a unit low on supply should
  929. start to look for a place to replenish itself.
  930.  
  931. The @dfn{strategy} and associated subobjects is what an AI
  932. uses to make all the decisions about what to do.  This object is not
  933. directly visible, unless the AI is acting as your assistant
  934. and the interface includes such a display.
  935.  
  936. Of all these types of objects, only the doctrine can be manipulated
  937. directly;  all others are implicitly changed as a result of
  938. player commands, which are different for each interface.
  939.  
  940. @subsection Doctrine
  941.  
  942. Players can set doctrine and use it in subsequent games, either for
  943. all games or just particular ones (see side config section).
  944.  
  945. @itemize @bullet
  946.  
  947. @item
  948. wait-for-orders
  949.  
  950. This is true if a unit should wait for explicit orders to be issued.
  951. If false, the unit should make up some sort of default plan and follow it.
  952.  
  953. [add rest of doctrine]
  954.  
  955. @end itemize
  956.  
  957. @subsection Standard Types of Tasks
  958.  
  959. Tasks that a unit can do include:
  960.  
  961. @itemize @bullet
  962. @item
  963. Wait for an explicit command.
  964.  
  965. @item
  966. Stand sentry at its current location.
  967.  
  968. @item
  969. Move in the given direction.
  970.  
  971. @item
  972. Move to within a given distance of the given location.
  973.  
  974. @item
  975. Move towards another given unit.
  976.  
  977. @item
  978. Patrol an area around one or two given points.
  979.  
  980. @item
  981. Attempt to hit a unit at a given location.
  982.  
  983. @item
  984. Attempt to capture a unit at a given location.
  985.  
  986. @item
  987. Resupply.
  988.  
  989. @end itemize
  990.  
  991. @subsection Time Limits
  992.  
  993. One reason to be concerned about automating your units is that some game
  994. designs define real-time limits on the length of a game.
  995. For instance, the game might be set to end in one hour,
  996. a single turn might be limited to always last at most 2 minutes,
  997. or your side might be limited to 15 minutes of playing time,
  998. in the manner of a chess clock.
  999. If such limits are in effect, your display should be able to show you
  1000. how much time you have left at any moment; pay attention!
  1001.  
  1002. When you run out of time, you are not automatically taken out of the game,
  1003. but you can no longer give any orders.  Units that are already on
  1004. automatic will continue to act.
  1005.  
  1006. The game design may give you a limited number of
  1007. ``timeouts'' that you can call to stop the clock.
  1008. The timeout ends when you order a unit to do something.
  1009.  
  1010. @node Climate Backdrop, Economy Backdrop, Automation, Playing Xconq
  1011.  
  1012. @section Environmental Conditions
  1013.  
  1014. Some games include @i{environmental effects},
  1015. which includes what we normally think of as weather;
  1016. the temperature, clouds, wind, rainfall, snowfall,
  1017. and snow cover on the ground.
  1018.  
  1019. The temperature falls in a range specified by the game, and may be
  1020. computed in different ways depending on the game design,
  1021. but typically depends on terrain, latitude,
  1022. the severity of the seasons, and elevation.
  1023. Temperature may also vary randomly from turn to turn and cell to cell.
  1024. The contribution of each of these to the final
  1025. temperature is up to the game design, as is the @emph{effect} of
  1026. temperature. [explain effects]
  1027.  
  1028. Cloud layers may appear in levels above the surface.
  1029. Their chief effect is to affect the seeing of units on the other
  1030. side of the clouds.
  1031.  
  1032. Wind affects the weather by causing clouds and storms to move around.
  1033. Certain unit types, such as sailing ships and balloons,
  1034. may depend on the wind to move around.
  1035.  
  1036. Games may define that the world represents part of a tilted sphere,
  1037. and that poles and equator correspond to various latitudes,
  1038. which has the effect of producing seasons.
  1039. The game specifies the temperature extremes for poles and equator,
  1040. for both midsummer and midwinter, then the weather phase interpolates
  1041. to get the average temperature for the current turn and at each latitude
  1042. in the world.
  1043.  
  1044. @node Economy Backdrop, Randomness Backdrop, Climate Backdrop, Playing Xconq
  1045.  
  1046. @section Economy
  1047.  
  1048. The economy in @i{Xconq} is based upon materials; if a game does not
  1049. define any material types at all, then there is no economy.
  1050.  
  1051. @subsection Consumption
  1052.  
  1053. Units consume their supplies, both in the course of existence,
  1054. and by motion/combat.
  1055. The rate depends on game and unit type; it consists of an overhead
  1056. consumed each turn without fail, and consumption for each cell of movement.
  1057. The total is a max, not a sum, since units with a constant consumption
  1058. rate are not likely to need additional supplies to move (consider foot
  1059. soldiers who eat as much sitting around as they do walking).
  1060. Supplies may also be consumed for production and repair, again depending
  1061. on game and unit types, but this consumption happens during the build phase.
  1062. Consumption is not affected by the situation of the consuming unit;
  1063. armies in troop transports eat just as much as when in the field.
  1064.  
  1065. @subsection Movement of Materials
  1066.  
  1067. Excess production is discarded, unless it can be unloaded into the
  1068. producer's occupying units, or distributed to nearby units via
  1069. @dfn{supply lines}.  Supply lines automatically exist between units
  1070. that are close enough (as decreed by the game), and there is no
  1071. need for explicit manipulation.
  1072.  
  1073. Supply line length depends on the game and the units on both ends,
  1074. but is not affected by the intervening terrain.
  1075. Supply redistribution is managed by logistics experts, who are ignorant
  1076. of the war effort and seek only to even everything out.
  1077. The redistribution method is rather adhoc; units try to get rid of all
  1078. their excess supply, and try to take up supply from other units within
  1079. supply range.  Each direction is controlled independently, so for instance
  1080. airplanes can get automatically refueled from a nearby city, but not from
  1081. each other.  No unit will transfer all of its supply via supply lines.
  1082. Normally units in the same cell can exchange supplies, but some games
  1083. can disable this behavior, so that explicit transfer using the give and
  1084. take commands is always necessary.
  1085.  
  1086. @node Randomness Backdrop, Scoring, Economy Backdrop, Playing Xconq
  1087.  
  1088. @section Random Events
  1089.  
  1090. Some games may include @dfn{random events}.
  1091. These are usually rare, but not always - be sure you know the odds!
  1092.  
  1093. @subsection Accidents
  1094.  
  1095. For some types of units in some types of terrain,
  1096. there is a chance for an accident to wreck or eliminate the unit instantly.
  1097. This depends on both unit type and terrain type.
  1098. If the accident occurs, the unit is wrecked or eliminated
  1099. along with all its occupants.
  1100.  
  1101. @subsection Attrition
  1102.  
  1103. Attrition is ``slow death'';
  1104. it takes away some number of hit points each time it occurs.
  1105. The rate of attrition depends on unit type and terrain or transport type.
  1106.  
  1107. @subsection Revolt/Surrender
  1108.  
  1109. Revolts and surrenders are really the same sorts of occurrence; a unit
  1110. changes sides spontaneously, perhaps to independence, perhaps to the side
  1111. of a nearby unit.
  1112. [???]
  1113. Occupants will either change over or be killed.
  1114. Any plans will be cancelled.
  1115.  
  1116. Surrender only occurs if a unit is
  1117. capable of capture is present.  The capturing unit does not move.
  1118. Occupants of the surrendering unit also change over or die.
  1119. Chance of surrender is increased by low unit morale.
  1120.  
  1121. @node Scoring, , Randomness Backdrop, Playing Xconq
  1122.  
  1123. @section Scoring
  1124.  
  1125. Different games can have different ways for players to win or lose.
  1126. Some games may not have any scoring at all.
  1127. You should be aware of this @emph{before} you start to play the game!
  1128.  
  1129. In @i{Xconq}, scoring is implemented by a game design's @dfn{scorekeepers}.
  1130. Each scorekeeper tests some sort of condition and/or maintains
  1131. a numeric score.
  1132. Scorekeepers also define when they run
  1133. (perhaps only during certain turns or certain times within a turn)
  1134. and which sides to look at.
  1135. Each scorekeeper is independent of the others,
  1136. so it only takes one to decide that you won or lost.
  1137.  
  1138. In a game with many players, winning and losing can be
  1139. a complicated issue; read the conditions carefully.
  1140. A scorekeeper can also decide to declare a game to be a draw and
  1141. end it on the spot.
  1142.  
  1143. Once a side has won, it is out of the game.
  1144. Some scorekeepers only allow one winner, others allow several;
  1145. in those cases, the scorekeeper will say what happens to the winning
  1146. side's units.
  1147.  
  1148. Once a side has lost, it cannot be brought back into a game, even if
  1149. another side tries to give it some more units or otherwise to reverse
  1150. things.
  1151.  
  1152. Finally, some games may record everybody's final scores into a file.
  1153.  
  1154. @subsection Last Side Wins
  1155.  
  1156. The most common form of scoring in @i{Xconq} is called
  1157. @dfn{last-side-wins}.  It is basically a fight to the death;
  1158. any side that loses all of its units loses, and the last side
  1159. with any units remaining is declared the winner.
  1160. It is possible that more than one side loses all its units
  1161. at the same time, in which case the game is declared a draw.
  1162.  
  1163. Since this would sometimes lead to bizarre stalemates (a submarine
  1164. could hide at sea, thus preventing the side from losing, for instance),
  1165. many games also define a @dfn{point value} for units.
  1166. In such cases, @i{last-side-wins} makes a side lose when the sum
  1167. of point values of all its units is zero.
  1168.  
  1169. [following sections should help player interpret scorekeepers]
  1170.  
  1171. @subsection Occupation
  1172.  
  1173. @subsection Unit Counts
  1174.  
  1175. @section Playing Hints
  1176.  
  1177. Informal alliances frequently happen in games involving more than two people,
  1178. so I have a few words of advice.  First, an alliance between two of the
  1179. players is almost certain in a three-person game, and inevitably
  1180. results in the "odd man out" being quickly defeated.  In four-person
  1181. games, the alliances could be decided after looking at the map via
  1182. a command-line option,
  1183. so that one pair is not hopelessly separated.  Five or more players is
  1184. going to be a free-for-all of formal and informal alliances.
  1185. Some scenarios are designed with a particular number of players in mind.
  1186.  
  1187. @section Technical Details
  1188.  
  1189. The coordinate system is ``oblique'',
  1190. with the X-axis in the usual horizontal,
  1191. and the Y-axis vertical, but tilted to the right at a 60-degree angle.
  1192. @example
  1193.       Y
  1194.      /
  1195.     /
  1196. ---------X
  1197.   /
  1198.  /
  1199. @end example
  1200.  
  1201.  
  1202.